草庐IT

由浅入深,聊聊 LeakCanary 的那些事

全部标签

聊聊 从源码来看ChatGLM-6B的模型结构

基于ChatGLM-6B第一版,要注意还有ChatGLM2-6B以及ChatGLM3-6B概述ChatGLM是transformer架构的神经网络模型,因此从transformer结构入手,分析其源码结构。transformer结构:转载请备注出处:https://www.cnblogs.com/zhiyong-ITNote/位置编码ChatGLM-6B的位置编码采用的旋转位置编码(RoPB)实现。其源码:classRotaryEmbedding(torch.nn.Module):def__init__(self,dim,base=10000,precision=torch.half,lear

尤雨溪老二次元了,揭秘 Vue 那些有趣的版本名称!

不知道你有没有注意到,Vue在每次新版本发布时,版本号后面都会跟一个英文的版本名称,这些名称都是什么意思呢?本文就来揭秘Vue.js那些有趣的版本名称!图片可以看到,Vue.js版本名称多数来自漫画和动漫,其中大部分属于科幻类。Vue.js0.6:VueJS2013年12月8日,Vue发布了第一个正式版本0.6,版本名称为VueJS。图片Vue.js0.9:Animatrix2014年2月25日,Vue发布0.9版本,版本名称为Animatrix。图片TheAnimatrix中文名为黑客帝国动画版,它是由美国华纳兄弟出品的一部动画科幻电影。该片共分为九部分,在电影版《黑客帝国》所描绘的虚拟世界

由浅入深理解C#中的事件

目录本文较长,给大家提供了目录,可以直接看自己感兴趣的部分。前言有关事件的概念示例​简单示例​标准.NET事件模式​使用泛型版本的标准.NET事件模式​补充总结参考前言前面介绍了C#中的委托,事件的很多部分都与委托类似。实际上,事件就像是专门用于某种特殊用途的简单委托,事件包含了一个私有的委托,如下图所示:有关事件的私有委托需要了解的重要事项如下:1、事件提供了对它的私有控制委托的结构化访问。我们无法直接访问该委托。2、事件中可用的操作比委托要少,对于事件我们只可以添加、删除或调用事件处理程序。3、事件被触发时,它调用委托来依次调用调用列表中的方法。有关事件的概念发布者(Publisher):

聊聊ChatGLM6B的微调脚本及与Huggingface的关联

本文首先分析微调脚本trainer.sh的内容,再剖析ChatGLM是如何与Huggingface平台对接,实现transformers库的API直接调用ChatGLM模型,最后定位到了ChatGLM模型的源码文件。脚本分析微调脚本:PRE_SEQ_LEN=128LR=2e-2CUDA_VISIBLE_DEVICES=0python3main.py\--do_train\--train_fileAdvertiseGen/train.json\--validation_fileAdvertiseGen/dev.json\--prompt_columncontent\--response_colu

聊聊ChatGLM6B的微调脚本及与Huggingface的关联

本文首先分析微调脚本trainer.sh的内容,再剖析ChatGLM是如何与Huggingface平台对接,实现transformers库的API直接调用ChatGLM模型,最后定位到了ChatGLM模型的源码文件。脚本分析微调脚本:PRE_SEQ_LEN=128LR=2e-2CUDA_VISIBLE_DEVICES=0python3main.py\--do_train\--train_fileAdvertiseGen/train.json\--validation_fileAdvertiseGen/dev.json\--prompt_columncontent\--response_colu

我们一起聊聊MySQL 索引的底层逻辑

数据结构以及算法索引的本质其实就是一种数据结构。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找,这种复杂度为O(n)的算法在数据量很大时显然是糟糕的,好在计算机科学的发展提供了很多更优秀的查找算法,例如二分查找、二叉树查找等。如果稍微分析一下会发现,每种查找算法都只能应用于特定的数据结构之上,例如二分查找要求被检索数据有序,而二叉树查找只能应用于二叉查找树上,但是数据本身的组织结构不可能完全满足各种数据结构(例如,理论上不可能同时将两列都按顺序进行组织),所以,在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些

C/C++手把手从零搭建多人群聊聊天室(客户端)

  先贴上效果图:本文将从客户端说起,从客户端到服务端(如何搭建云电脑连接外网)开始一步步实现聊天室。全程采用c/c++语言,教程会用到MFC,不熟悉的朋友可以先去了解一些基础知识,有用到的知识点会在文章中进行详细的介绍以及解释。 先从客户端开始做起,我们先根据效果图对客户端功能进行分析:  这是一个基于对话框的窗口。我们要实现等待功能如下:1.建立一个文本框,并且将聊天内容展示到文本框内。2.建立两个编辑框,一个发送按钮和一个自动回复的可选择按钮,用于实现发送和自动发送功能。3.建立编辑框保存昵称,保存成功后在当前目录下生成配置文件,方便下次读取。4.设立两个编辑框分别写入端口号和IP地址,

今天我们来聊聊面试必考题-离职原因

马云说过,员工离职只有两个原因:①薪资不到位;②心里受委屈了。其他都是扯淡。所以离职哪有什么重大原因,都是大家心知杜明的事情,但是看破不说破,我们去面试就是为了去拿offer的,所以说千万别想着去吐槽。前言这个问题,其实就是面试官想要你主动离职还是被动离职。一来:不要表现出很多埋怨的情绪,这样的话会让面试官觉得你是一个负能量很重,喜欢埋怨的同事。原因客观原因比如:不交五险一金、克扣工资啥的可以直接说。薪水(和事情挂钩)比如:就是活是做的不错的,但是,然后也负责了很多离职同事现有的工作,工作超负荷,然后薪资上并没有比较大的调整。对标了一些同行朋友的情况,我目前工资算是偏低的。所以想在外面看看机会

聊聊ChatGLM-6B部署与微调的深入理解

ChatGLM的部署,主要是两个步骤:在Github上下载chatglm的库文件在HuggingFace上下载模型参数与配置文件ChatGLM包从Github上看ChatGLM项目文件的结构来看,仅仅是包含三种部署方式的py代码与微调的py代码而相关的实现细节,比如神经网络、激活函数、损失函数等具体的实现,并不在该项目源码中。不管以哪种方式部署,最核心就是三句代码,其作用是引入模型参数,初始化transformers配置;以web部署的方式为例:tokenizer=AutoTokenizer.from_pretrained("THUDM/chatglm-6b",trust_remote_cod

聊聊ChatGLM-6B部署与微调的深入理解

ChatGLM的部署,主要是两个步骤:在Github上下载chatglm的库文件在HuggingFace上下载模型参数与配置文件ChatGLM包从Github上看ChatGLM项目文件的结构来看,仅仅是包含三种部署方式的py代码与微调的py代码而相关的实现细节,比如神经网络、激活函数、损失函数等具体的实现,并不在该项目源码中。不管以哪种方式部署,最核心就是三句代码,其作用是引入模型参数,初始化transformers配置;以web部署的方式为例:tokenizer=AutoTokenizer.from_pretrained("THUDM/chatglm-6b",trust_remote_cod